package org.realityforge.gwt.sample.contacts.client.application.desktop;
import com.google.gwt.activity.shared.ActivityManager;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.place.shared.PlaceHistoryHandler;
import org.realityforge.gwt.sample.contacts.client.application.Application;
import org.realityforge.gwt.sample.contacts.client.application.ApplicationNavigator;
import org.realityforge.gwt.sample.contacts.client.view.DesktopShellView;
import com.google.gwt.user.client.ui.RootLayoutPanel;
import javax.inject.Inject;
@SuppressWarnings( { "UnusedDeclaration" } )
public class DesktopApplication
implements Application
{
private final DesktopShellView _shell;
private final ApplicationNavigator _navigator;
private final PlaceHistoryHandler _placeHistoryHandler;
private final DetailRegionActivityMapper _detailRegionMapper;
private final MasterRegionActivityMapper _masterRegionMapper;
private final EventBus _eventBus;
@Inject
public DesktopApplication( final DesktopShellView shell,
final ApplicationNavigator navigator,
final PlaceHistoryHandler placeHistoryHandler,
final DetailRegionActivityMapper detailRegionMapper,
final MasterRegionActivityMapper masterRegionMapper,
final EventBus eventBus )
{
_shell = shell;
_navigator = navigator;
_placeHistoryHandler = placeHistoryHandler;
_detailRegionMapper = detailRegionMapper;
_masterRegionMapper = masterRegionMapper;
_eventBus = eventBus;
}
public void activate()
{
_navigator.activate();
new ActivityManager( _masterRegionMapper, _eventBus ).setDisplay( _shell.getMasterRegion() );
new ActivityManager( _detailRegionMapper, _eventBus ).setDisplay( _shell.getDetailRegion() );
RootLayoutPanel.get().add( _shell );
// Goes to place represented on URL or default place
_placeHistoryHandler.handleCurrentHistory();
}
}